Chimp's PitchShifter

by dave hooper


Description

It's just a pitch shifter - given an input waveform, the output waveform approximates to the original played at a higher or lower pitch, whilst keeping the time frame intact.

Features

What's new

Release 1.0 & 1.01
  • Initial releases to gauge response
  • Release 1.05
  • First 'official' public release
  • Much reduced CPU load (20 times faster code!)
  • Release 1.1
  • Second release
  • Made the buffer size an attribute so people can 'tweak' it
  • Had a go at getting rid of the clicks but gave up
  • Full source code available on request
  • Release 1.1a (30-07-98)
  • Minor bugfix release
  • Small bug which resulted in weird static being produced if the sample rate is changed whilst a buzzsong is being played, and then shortly afterwards the buzzsong is stopped. You probably never noticed it, it wasn't such a big deal anyway, but it did mean that this scary sound was being generated after the song had finished, and there was no way of stopping it!
  • Usage

    P a r a m e t e r s

    Shift Pitch shift in cents - 100 cents for a shift of one semitone, 1200 cents for a shift of one octave, up to 2400 cents for a two octave shift (not really recommended with this release)
    Direction Up or down, to shift the pitch either higher or lower
    Dry Amount of input that appears unchanged at the output, from 100% to 0% (none of the original signal is present at the output) to -100% (the original signal appears at the output but is inverted)
    Wet Amount of the affected pitchshifted signal that appears at the output, from 100% to 0% (the output does not contain any picthshifted signal, ie, the effect is turned off) to -100% (the pitchshifted signal is inverted before sending to the output)

    A t t r i b u t e s

    Buffer size The size of the internal buffer to use. This becomes important for large upward shifts (using the current algorithm) as the size of the buffer becomes audible, if you get what I mean. The smaller the buffer size, the higher the pitch of the interference you get (ie, smaller buffer is bad). The larger the buffer, the less time-continuous the output signal is, giving rise to echo artifacts on the output signal (ie, larger buffer is also bad).
    Overlap Amount on
    Heads Passed
    Left over from my attempts to remove the clicks by incorporating more buffers and filtering and overlapping the signals. Didn't work so I took all the code out again, but left this attribute in case anyone else wants to have a go. This attribute does nothing at the moment.

    Notes

    Baaaad clicking. Also, large pitchshifts sound a bit naff and aren't much use except for special effects. Try sticking a drum loop through with between +18 and +24 semitone shift upwards to see what I mean.

    Some Tips

    Use a very small pitch shift (10-30 cents) to make a bass sound 'fatter'
    Use a shift of +7 semitones to make easy 'fifths' from, for example, tracker output
    Use a downward shift of between 4 and 12 semitones to make drums sound more powerful
    Take care not to overdrive the input if you have a high (almost +- 100%) Wet/Dry mix, as it WILL lead to clipping on the output, making the clicking artifacts more prominent. Check with the signal analyser and lower the input volume(s) if necessary. When used in this way, the clicking isn't too bad.

    Donationware

    If you like and use Chimp's plugins, you can register them by sending any amount of cash (in any currency) to the following address

    dave hooper
    2a corringway fleet
    hants gu13 0an
    UK

    Contact Information

    Author dave hooper - paranoia consultant with spc
    Email no-brain@mindless.com
    Hideously Out-of-Date WebSite http://yi.com/home/HooperDave/